package br.com.gestacard.sync.controle.jsf.instituicao;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import br.com.gestacard.sync.controle.jsf.AppAction;
import br.com.gestacard.sync.entidade.InstituicaoEntity;
import br.com.gestacard.sync.entidade.Status;
import br.com.gestacard.sync.facade.IAppFacade;

import com.powerlogic.jcompany.comuns.PlcException;
import com.powerlogic.jcompany.config.comuns.PlcConstantes;

/**
 * Classe de Controle gerada pelo assistente
 */
public class InstituicaoAction extends AppAction {

	private static final long serialVersionUID = -1524794649919291976L;

	@Override
	protected void trataBotoesConformeLogicaApos() throws PlcException {
		HttpServletRequest request = (HttpServletRequest) FacesContext
				.getCurrentInstance().getExternalContext().getRequest();

		request.setAttribute(PlcConstantes.ACAO.EXIBE_BT_EXCLUIR, "N");

		if (entidadePlc != null) {
			InstituicaoEntity instituicaoEntity = (InstituicaoEntity) entidadePlc;
			if (instituicaoEntity.getStatus().equals(Status.I)) {
				request.setAttribute(PlcConstantes.ACAO.EXIBE_BT_GRAVAR, "N");
			}
		}
		super.trataBotoesConformeLogicaApos();
	}

	@Override
	public String grava() throws PlcException {
		InstituicaoEntity instituicaoEntity = (InstituicaoEntity) entidadePlc;
		if (entidadeAnteriorPlc == null) {
			IAppFacade facade = (IAppFacade) getServiceFacade();
			if (facade.validaCodigoCadastrado("InstituicaoEntity",
					instituicaoEntity.getId())) {
				throw new PlcException("erro.codigo.cadastrado");
			}
		}
		return super.grava();
	}

}
